//库模块
module mymodule

const (
	pi    = 3.14
	world = '世界'
)

// init函数会被自动调用 同一个模块内只能定义一个init函数
fn init() {
	println('mymodule模块初始化,init函数会被自动调用 同一个模块内只能定义一个init函数')
    name := 'Bob'
    println('Hello, $name!') // 这里可以使用`$`标识符嵌入变量，和swift相似
    println(name.len)

    bobby := name + 'by' // `+` 可以进行字符串拼接操作
    println(bobby) // "Bobby"
    // println(bobby[1 : 3]) // 字符串截取
    mut s := 'hello ' // 定义可修改值的string变量
    s += 'world'
    println(s) // "hello world"
}

// pub是函数的访问控制，只有公共的函数才可以被其他模块使用，没有pub的只能在模块内部使用
pub fn say_hi() {
	mut a := 0
	mut b := 1
	println('$a, $b') // 0, 1
	a, b = b, a
	println('$a, $b') // 1, 0
	s := 'hello 🌎' // emoji takes 4 bytes
	println('$s , $s.len')
	println('这是模块里的函数打印!')
	println(mymodule.pi)
	println(mymodule.world)
}
